home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
serien
/
purity
/
nr.43
/
os2unit
/
os2unit.dok
< prev
next >
Wrap
Text File
|
1995-01-07
|
15KB
|
901 lines
OS2Unit by Björn Schotte
OS2-Unit
©1994 by Björn Schotte
- GIFTWARE -
1. Willkommen
2. Warum diese Unit?
3. Die einzelnen Funktionen
4. Hinweise
5. History
6. Adresse/Copyright
1. Willkommen
Willkommen zur OS2-Unit. Freut mich, daß Sie es doch noch
geschafft haben, die Anleitung durchzulesen. Ich wünsche
Ihnen noch viel Spaß mit dieser Unit und hoffe, daß Sie
zufrieden sind.
Björn Schotte
2. Warum diese Unit?
Nun, da ich schon seit geraumer Zeit nur noch Programme
entwickle, die ab OS2.0 funktionieren, wollte ich die
Entwicklung noch etwas vereinfachen, indem ich mir einen
Befehlssatz, der in (fast) jedem Programm vorkommt, in
eine Unit auslagerte.
OS2.x stellt ja bekanntlich viele tolle Eigenschaften zur
Verfügung, z.B. neue (einfache) Gadgets etc. Dies wird z.B.
durch die gadtools.library zur Verfügung gestellt. Und
genau mit dieser Library beschäftigt sich diese Unit...
Es werden z.B. auch Routinen vorgestellt, die das fontsensi-
tive Programmieren von GUIs vereinfachen...
3. Die Funktionen
Alphabetische Liste aller Prozeduren/Funktionen, die von der
Unit zur Verfügung gestellt werden:
ActStringGad
ASLFileReq
CloseASL
CloseGadTools
ComputeFont
ComputeX
ComputeY
FS_BevelBox
GadSelect
GhostGadget
InitASLStruct
SensitivGadget
SetCheckBox
SetCycleGad
SetListViewGad
SetListViewList
SetMXGad
SetNumberGad
OpenASL
OpenGadTools
Zu beachten ist auch, daß im Interface-Teil einige Variablen
definiert werden, die vom Programm ausgefüllt werden muß, damit
fontsensitives Programmieren möglich ist:
ScreenW : Breite des Screens, auf dem das Fenster
geöffnet werden soll.
ScreenH : Analog dazu die Höhe.
WBRight : Breite des Rahmens auf der rechten Seite.
(sp^.WBorRight);
WBBottom : Höhe des Rahmens auf der unteren Seite.
(sp^.WBorBottom);
XOff : sp^.WBorLeft;
YOff : sp^.BarHeight;
(VAR sp:p_Screen)
OS2-Unit/ActStringGad
NAME
ActStringGad
SYNOPSIS
ActStringGad(wp,gad,req);
wp : p_Window;
gad : p_Gadget;
req : p_Requester;
ERKLÄRUNG
Diese Prozedur aktiviert das Gadget im Window und,
sofern nötig, im angegebenen Requester
RÜCKGABE
Keine.
BUGS
Keine bekannt.
OS2-Unit/ASLFileReq
NAME
ASLFileReq
SYNOPSIS
LONG = ASLFileReq(ASLStruct);
ASLStruct : ASLFileStruct;
ASLFileStruct = RECORD
left, top, { Linke Ecke, rechte Ecke, }
width, { Breite und }
height : INTEGER; { Höhe d. FileReqs (optional) }
titel : STRING[80]; { Titel des FileReqs }
pfad, { Hier werden Pfad und Datei }
datei, { von der Prozedur abgelegt. }
initp, { Vorgegebener Pfad/Datei, der }
initd, { als erstes im Req dargestellt }
{ werden soll. }
filename : STRING[256];{ Hier wird von der Prozedur ein}
{ vollständiger Filename erstellt}
{ also z.B. "Work:xx/yy" }
pattern : STRING[80]; { Muster (z.B. "~(#?.info)" (optional) }
display_pat: BOOLEAN; { Soll ein String-Gadget im Req }
{ dargestellt werden, damit man }
{ das Pattern ändern kann ? }
win : p_Window; { Zugehöriges Window des Reqs (opt.) }
winsleep, { Soll Wartezeiger + unsichtb. Req }
{ auf <win> geöffnet werden ? }
canceled : BOOLEAN; { Wurde der Requester gecanceled ? }
negativ, { Negativer Gadget-Text (opt.) }
positiv : STRING; { Positiver Gadget-Text (opt.) }
END;
ERKLÄRUNG
Diese mächtige Funktion stellt einen ASLFile-Requester dar.
Zu beachten ist, daß die "asl.library" mit der Funktion
OpenASL zu öffnen ist, denn die Prozedur tut das nicht
selber !! Auch die "dos.library" muß geöffnet werden, da
die Prozedur eine Funktion aus der Library verwendet.
Als erstes muß das Programm, daß die Funktion aufruft, mit
der Prozedur InitASLStruct sicherstellen, daß alle Variablen
der Struktur initialisiert werden.
Als nächstes initialisiert man im Programm die Struktur mit
seinen eigenen Werten, bei den meisten braucht man, wenn man
das gewünschte Feature nicht haben will, nichts eintragen.
O.g. Variablen haben in der Eklärung ein "opt.", wenn diese
Variable nicht zwingend ausgefüllt werden muß.
Man füllt also diese Struktur aus und übergibt Sie der Funktion.
Die Funktion retourniert 0, wenn alles klar ist, ansonsten
FREQ_NOALLOC (=-100). Dies bedeutet, daß die Allokation per
AllocASLRequest() fehlgeschlagen ist!
In der eigenen Struktur, die man ASLFileReq() übergeben hat,
findet sich unter <filename> der vollständige Dateiname inkl.
"/" oder ":" bei Verzeichnis-/Disknamen. Unter
<pfad>
und
<datei>
findet man jeweils den einzelnen Pfad bzw. die einzelne
Datei. Unter pattern findet man entweder das alte Pattern bzw.
ein neues, falls der Benutzer im Filerequester ein neues einge-
geben hat.
<initp>
und
<initd>
erhalten die Werte von
<pfad>
und
<datei>
.
<canceled>
ist TRUE, wenn der Benutzer den
Filerequester gecancelt hat.
Ich hoffe, daß damit alles klar ist!
RÜCKGABE
0, wenn alles klar ist, ansonsten
FREQ_NOALLOC (=-100), wenn das Allokieren der FileRequester-Struktur
per AllocASLRequest() fehlgeschlagen ist.
BUGS
Keine bekannt.
OS2-Unit/CloseASL
NAME
CloseASL
SYNOPSIS
CloseASL
ERKLÄRUNG
Schliesst die evtl. geöffnete "asl.library".
RÜCKGABE
Keine.
BUGS
Keine bekannt.
SIEHE AUCH
OpenASL
OS2-Unit/CloseGadTools
NAME
CloseGadTools
SYNOPSIS
CloseGadTools;
ERKLÄRUNG
Schliesst die evtl. geöffnete "gadtools.library".
RÜCKGABE
Keine
BUGS
Keine bekannt
SIEHE AUCH
OpenGadTools
OS2-Unit/ComputeFont
NAME
ComputeFont
SYNOPSIS
ComputeFont(TheFont, width, height);
TheFont : p_TextFont;
width,
height : INTEGER;
ERKLÄRUNG
Hauptprozedur für fontsensitive GUIs.
Übergeben wird ein Font und Breite und Höhe bei
topaz/8-Font (z.B. fürs Fenster-Öffnen).
Die Prozedur berechnet als erstes die Breite
und Höhe bei TheFont und überprüft dann, ob diese
auf den Screen passen.
Folgende Variablen müssen "von Hand" initialisiert
werden:
ScreenW, ScreenH, WBRight, WBBottom, XOff, YOff
RÜCKGABE
Keine.
BUGS
Keine bekannt.
SIEHE AUCH
ComputeX
ComputeY
OS2-Unit/ComputeX
NAME
ComputeX
SYNOPSIS
LONG = ComputeX(value);
value : INTEGER;
ERKLÄRUNG
Übergeben wird die Breite bei topaz/8-Font.
ComputeX berechnet dann die Breite bei TheFont
von ComputeFont.
RÜCKGABE
Breite bei TheFont.
BUGS
Keine bekannt.
SIEHE AUCH
ComputeFont
OS2-Unit/ComputeY
NAME
ComputeY
SYNOPSIS
LONG = ComputeY(value);
value : INTEGER;
ERKLÄRUNG
Übergeben wird die Höhe bei topaz/8-Font.
ComputeY berechnet dann die Höhe bei TheFont
von ComputeFont.
RÜCKGABE
Höhe bei TheFont.
BUGS
Keine bekannt.
SIEHE AUCH
ComputeFont
OS2-Unit/FS_BevelBox
NAME
FS_BevelBox
SYNOPSIS
FS_BevelBox(wp,vi,x,y,b,h,recessed);
wp : p_Window;
vi : PTR; { VisualInfo }
x,y : INTEGER; { Linke, obere Ecke }
b,h : INTEGER; { Breite und Höhe }
recessed : BOOLEAN; { Rahmen "eingedrückt" ?? }
ERKLÄRUNG
Zeichnet eine fontsensitive BevelBox.
RÜCKGABE
Keine
BUGS
Keine bekannt.
OS2-Unit/GadSelect
NAME
GadSelect
SYNOPSIS
GadSelect(wp,gad);
wp : p_Window;
gad : p_Gadget;
ERKLÄRUNG
Per GT_Underscore kann man bei einem Gadget bestimmen,
welcher Buchstabe unterstrichen werden muss. Dies be-
deutet, daß man das Gadget auch über die Tastatur
anwählen kann. Um dies sichtbar zu machen, existiert
diese Prozedur. Ihr wird das Fenster und das Gadget
übergeben.
ACHTUNG: Die Tastendrücke, die vom Programm empfangen
werden, müssen vom Typ IDCMP_RAWKEY sein !!
Wenn man also im Programm eine Message vom Typ
IDCMP_RAWKEY empfangen hat, muss man den Tastendruck
abfragen. Es muss aber nur der msg^.Code beim Drücken
der Taste abgefragt werden, damit die Prozedur auf
eine Release warten kann!!
RÜCKGABE
Keine.
BUGS
Keine bekannt.
OS2-Unit/GhostGadget
NAME
GhostGadget
SYNOPSIS
GhostGadget(wp,gad,req,dis);
wp : p_Window;
gad : p_Gadget;
req : p_Requester; (optional)
dis : BOOLEAN;
ERKLÄRUNG
Übergeben wird das Fenster, das Gadget und, wenn nötig,
der Requester, in dem das Gadget "liegt". Weiterhin
wird entweder TRUE oder FALSE übergeben, jenachdem, wie
man das Gadget haben will: TRUE, um es zu "ghosten", an-
sonsten FALSE.
RÜCKGABE
Keine.
BUGS
Keine bekannt.
OS2-Unit/InitASLStruct
NAME
InitASLStruct
SYNOPSIS
InitASLStruct(ASLStruct);
ASLStruct : ASLFileStruct;
ERKLÄRUNG
Diese Funktion steht in Verbindung mit ASLFileReq().
Sie muß vom aufrufenden Programm vor (!) dem ersten
Benutzen von ASLFileReq() aufgerufen werden. Mit ihr
wird die übergebene ASLFileStruct initialisiert.
RÜCKGABE
Keine.
BUGS
Keine bekannt.
SIEHE AUCH
ASLFileReq
OS2-Unit/SensitivGadget
NAME
SensitivGadget
SYNOPSIS
SensitivGadget(ng);
ng : NewGadget;
ERKLÄRUNG
Verändert die Koordinaten der NewGadget-Struktur so,
daß sie sich fontsensitiv anpassen...
ACHTUNG: In der NewGadget-Struktur müssen die Koor-
dinaten so eingetragen sein, als ob sie
dem topaz/8-Font entsprechen würden !!
RÜCKGABE
Keine.
BUGS
Keine bekannt.
OS2-Unit/SetCheckBox
NAME
SetCheckBox
SYNOPSIS
SetCheckBox(wp,gad,req,flag);
wp : p_Window;
gad : p_Gadget;
req : p_Requester;
flag : BOOLEAN;
ERKLÄRUNG
Stellt ein CheckBox-Gadget mit Häkchen (=aktiviert)
oder ohne dar.
RÜCKGABE
Keine.
BUGS
Keine bekannt.
SIEHE AUCH
SetCycleGad
SetListViewGad
SetListViewList
SetMXGad
SetNumberGad
OS2-Unit/SetCycleGad
NAME
SetCycleGad
SYNOPSIS
SetCycleGad(wp,gad,req,active);
wp : p_Window;
gad : p_Gadget;
req : p_Requester;
active : LONG;
ERKLÄRUNG
Setzt den CycleGadget-Text Nr. <active> (von 0
beginnend!)
RÜCKGABE
Keine.
BUGS
Keine bekannt.
SIEHE AUCH
SetCheckBox
SetListViewGad
SetListViewList
SetMXGad
SetNumberGad
OS2-Unit/SetListViewGad
NAME
SetListViewGad
SYNOPSIS
SetListViewGad(wp,gad,req,active,top);
wp : p_Window;
gad : p_Gadget;
req : p_Requester;
active,
top : LONG;
ERKLÄRUNG
Setzt den aktiven Eintrag eines ListView-Gadgets.
Ausserdem wird noch das oberste sichtbare Listen-
Element mit angegeben (top).
RÜCKGABE
Keine.
BUGS
Keine bekannt.
SIEHE AUCH
SetCheckBox
SetCycleGad
SetListViewList
SetMXGad
SetNumberGad
OS2-Unit/SetListViewList
NAME
SetListViewList
SYNOPSIS
SetListViewList(wp,gad,req,NeueList);
wp : p_Window;
gad : p_Gadget;
req : p_Requester;
NeueList : p_List;
ERKLÄRUNG
Setzt die Liste eines ListView-Gadgets neu.
RÜCKGABE
Keine.
BUGS
Keine bekannt.
SIEHE AUCH
SetCheckBox
SetCycleGad
SetListViewGad
SetMXGad
SetNumberGad
OS2-Unit/SetMXGad
NAME
SetMXGad
SYNOPSIS
SetMXGad(wp,gad,req,active);
wp : p_Window;
gad : p_Gadget;
req : p_Requester;
active : LONG;
ERKLÄRUNG
Setzt das aktive MX-Element.
RÜCKGABE
Keine
BUGS
Keine bekannt
SIEHE AUCH
SetCheckBox
SetCycleGad
SetListViewGad
SetListViewList
SetNumberGad
OS2-Unit/SetNumberGad
NAME
SetNumberGad
SYNOPSIS
SetNumberGad(wp,gad,req,nummer);
wp : p_Window;
gad : p_Gadget;
req : p_Requester;
nummer : LONG;
ERKLÄRUNG
Setzt ein Number-Gadget mit dem Wert <nummer>.
RÜCKGABE
Keine
BUGS
Keine bekannt
SIEHE AUCH
SetCheckBox
SetCycleGad
SetMXGad
SetListViewGad
SetListViewList
OS2-Unit/OpenASL
NAME
OpenASL
SYNOPSIS
BOOLEAN = OpenASL(version);
version : INTEGER;
ERKLÄRUNG
Versucht, die "asl.library" mit der Version <version>
oder höher, zu öffnen.
RÜCKGABE
TRUE, falls die Library geöffnet werden konnte, ansonsten
FALSE.
BUGS
Keine bekannt.
SIEHE AUCH
CloseASL
OS2-Unit/OpenGadTools
NAME
OpenGadTools
SYNOPSIS
BOOLEAN = OpenGadTools(version);
version : INTEGER;
ERKLÄRUNG
Versucht, die "gadtools.library" mit der Version <version>
oder höher, zu öffnen.
RÜCKGABE
TRUE, falls die Library erfolgreich geöffnet werden konnte,
ansonsten FALSE.
BUGS
Keine bekannt
SIEHE AUCH
CloseGadTools
4. Hinweise
Wichtig:
Das Programm, das diese Unit einbindet, muß (!) mit der Funktion
OpenGadTools() dafür sorgen, daß die "gadtools.library"
geöffnet wird!
5. History
-=-=-=-=-=-=-=-=-=-=-
- Revision: V0.030 -
-=-=-=-=-=-=-=-=-=-=-
ASLFileReq() hinzugefügt. Mächtige Funktion
zum Auswählen von Dateien.
-=-=-=-=-=-=-=-=-=-=-
- Revision: V0.020 -
-=-=-=-=-=-=-=-=-=-=-
SetXXXGad-Prozeduren erweitert;
GhostGadget(), GadSelect hinzugefügt.
-=-=-=-=-=-=-=-=-=-=-
- Revision: V0.010 -
-=-=-=-=-=-=-=-=-=-=-
SetXXXGad-Prozeduren hinzugefügt.
-=-=-=-=-=-=-=-=-=-=-
- Revision: V0.000 -
-=-=-=-=-=-=-=-=-=-=-
--- Initial release ---
6. Adresse/Copyright
Diese Unit ist
GIFTWARE
, d.h. wenn es Ihnen gefällt, können (!) Sie
mir etwas schicken, was ich als Spende auffassen werde, z.B.: Geld,
PD-DisX, Pascal-Sources, Schokolade....
Das ist nicht zwingend, aber: Wer die Möglichkeit hat, EMail zu
benutzen, der sollte (!) mir
wenigstens
eine nette Mail schreiben...
Auch Bug-Reports, Vorschläge etc. sind gern gesehen (ersteres nicht so
gern :)
Meine Adresse:
Björn Schotte
Am Burkardstuhl 45
D-97267 Himmelstadt
Germany
EMail:
bombersoft@bomber.mayn.sub.de
oder
schotte@incubus.sub.org
(beides UseNet)
Ich wünsche Ihnen viel Spass mit dieser Unit!